#include "CurrentThread.h"

// 命名空间的定义, 实现了头文件中声明的函数和变量
namespace CurrentThread
{
    // 定义线程局部存储的变量, 并初始化为0 
    __thread int t_cachedTid = 0;   

    // 实现缓存tid的函数
    void cacheTid()
    {
        // 如果 t_cachedTid, 说明还未缓存tid 
        if (t_cachedTid == 0)
        {
            // 通过linux系统调用，获取当前线程的tid值
            t_cachedTid = static_cast<pid_t>(::syscall(SYS_gettid));
        }
    }
}